1. Field of the Invention
The present invention relates to cell searching in a wideband code division multiple access (WCDMA) system. More specifically, the flexible use of correlators when selecting the primary scrambling code from a multiple of scrambling code groups is disclosed.
2. Description of the Prior Art
Spread spectrum communication systems are becoming increasingly important in cellular networks. In particular, wideband code division multiple access (WCDMA) systems are entering the marketplace, and offer the potential of significantly increased performance and reliability.
To establish a network connection in a WCDMA system, the user equipment (UE) must first perform a cell search procedure. The cell search procedure enables the UE to obtain timing and code synchronization for the downlink channel. Various methods are known in the prior art for performing a cell search procedure. Attention is drawn, for example, to the article “Cell Search in W-CDMA” by Yi-Pin Eric Wang and Tony Ottosson in Vol.18, No.8 (August 2000 edition) of IEEE Journal on Selected Areas in Communications, which is included herein by reference.
A simple overview of cell searching is presented in the following. Please refer to FIG. 1. FIG. 1 is a block diagram of a downlink Common Control Channel (CCH) 10 in a WCDMA system. The CCH 10 is broken up into a series of frames 12. Each frame 12 contains fifteen slots 14. Each slot 14 holds ten symbols, each of 256 chips. Hence, each slot 14 is 2560 chips in length. Please refer to FIG. 2 in conjunction with FIG. 1. FIG. 2 is a block diagram of a slot 14 in the CCH 10. The first symbol 16 in each slot 14 holds a primary synchronization channel (PSCH) 16p and a secondary synchronization channel (SSCH) 16s. The remaining nine symbols 18 follow after the first symbol 16, and provide the primary common control physical channel (PCCPCH). The PSCH 16p and SSCH 16s are orthogonal to each other, and hence can be broadcast on top of each other. The PSCH 16p is encoded by way of a primary synchronization code (PSC) that is the same for all base stations, and that does not change. The SSCH repeatedly transmits a length 15 sequence of modulated code of length 256 chips; the secondary synchronization codes (SSC) are transmitted in parallel with primary SCH. Each SSC is chosen from a set of 16 different codes of length 256. This sequence on the secondary SCH indicates which code group the cells downlink scrambling code belongs to. Please refer to FIG. 3. FIG. 3 is a block diagram of a common pilot channel (CPICH) 20 broadcast with the CCH 10. The coding used for the CPICH 20 is unique to the broadcasting base station. In a WCDMA system, a base station can use one of 512 different primary scrambling codes for the CPICH 20, which are broken into 64 code groups, each having 8 respective codes. The PSC of the PSCH 16p is common across all base stations, and can thus be used for slot 14 synchronization. Although the SSC of the SSCH 16s changes on a slot 14 by slot 14 basis, the sequence pattern of code change of the SSCH 16s is determined by the code group into which the code used for the CPICH 20 lies. That is, there are 64 code sequence patterns for the SSCH 16s to follow, each of which corresponds to a particular code group associated with the code used for the CPICH 20. By correlating the received CCH signal 10 with all possible SSCH 16s code sequences and identifying the maximum correlation value, it is possible to learn the code group of the CPICH 20, and to obtain frame 12 synchronization. This is due to the fact that the SSCH 16s changes according to a predefined sequence, the starting sequence of which is known and which is sent at the beginning of every frame 12, thus enabling frame synchronization. Once the code group of the CPICH 20 is learned, it is possible to obtain the primary scrambling code used by the cell by performing symbol-by-symbol correlation over the CPICH 20 with all eight of the codes in the code group identified for the CPICH 20. Once the primary scrambling code used by the base station has been identified, system and cell specific broadcast channel (BCH) information can be read.
Based upon the above, cell searching is thus typically broken into the three following steps: Step 1: Slot synchronization.
Utilize the PSCH 16p to perform slot synchronization. This is typically done with a matched filter (or similar device) that is matched to the PSC that is common to all base stations. Typically, output from the matched filter of a frame's worth of slots is non-coherently combined, and a resulting maximum peak is found. The slot boundary is obtained from the maximum peak.
Step 2: Frame synchronization and code group identification.
The slot timing obtained in step 1 is used to correlate the SSCH 16s with all possible SSC code sequences. There are sixteen SSC codes, SSC1 to SSC16, that make up the SSCH code sequence. The SSCs are correlated over a frame's worth of slots and accumulated over all possible frame boundaries to yield a table of values. Each entry in the table has a column/row position that indicates the corresponding scrambling code group and frame slot boundary of the entry. The maximum entry in the table is chosen as the candidate for frame boundary and code group determination.
Step 3: Scrambling code identification.
Symbol-by-symbol correlation is performed on the CPICH 20 for all scrambling codes within the code group identified in step 2. The maximum correlation value is selected as the primary scrambling code of the base station. This maximum correlation value is acceptable only if it exceeds a threshold value.
Please refer to FIG. 4. FIG. 4 is a simple block diagram that illustrates cell synchronization for a prior art UE 30. Of course, the UE 30 will contain many more components than those shown in FIG. 4, which is restricted to the present discussion. The UE 30 includes a transceiver 39 and a synchronization stage 38. The transceiver 39 receives broadcasts from a base station (not shown) and passes broadcast data to the synchronization stage 38 in a manner familiar to those in the art of wireless devices. The synchronization stage 38 includes a stage 1 31, a stage 2 32 and a stage 3 33. The stage 1 31 performs the slot synchronization of step 1 discussed above. Results from stage 1 31 are passed to stage 2 32, which performs the frame 12 synchronization and code group identification of step 2. Results from stage 2 32 are then passed on to stage 3 33, which performs the scrambling code identification of step 3.
Stage 1 31 includes a peak profiler 34. The peak profiler 34 contains the PSC 35 that is common to all base stations, and generates peak profile data 36 that is obtained by matching the PSC 35 against the PSCH 16p received from the transceiver 39, and which is non-coherently combined over a frame 12 of slots 14. The profile data 36 holds data for a predetermined number of chips, and as the PSCH 16p repeats with every slot 14, it is common to hold enough data to cover an entire slot 14, i.e., 2560 chips. The chip in the profile data 36 having the highest peak profile is assumed to mark the PSCH 16p, and is thus used as the PSCH path position 37, the slot boundary offset. This is illustrated in FIG. 5, which is an example graph of peak profile data 36 (not to scale). Stage 1 31 notes that in the profile data 36, a maximum valued peak occurs at chip number 1658. The PSCH path position 37 would thus hold a value indicative of the peak path position at chip 1658. The PSCH path position 37 is forwarded to stage 2 32 as the slot 14 synchronization point. Utilizing the slot 14 position marked by the PSCH path position 37, stage 2 32 performs step 2 outlined above to generate a code group value 32g and a slot number 32s. 
The stage 2 32 has a correlation unit 32c that generates a correlation table 32t based upon the PSCH path position 37 (the slot boundary offset) and secondary correlation results of the SSCH 16s with the SSCs. FIG. 6 illustrates a sample correlation table 32t, which is generated form correlating the received signal with sixteen SSCs correlators, and then accumulating and shifting the correlation results over fifteen slots. The SSCH 16s code sequence spans fifteen slots 14 (i.e., a frame 12 is fifteen slots 14 long), and encodes for one of 64 code groups. Each entry C0 to C959 represents a correlation result of an SSCH 16s code group sequence, with the slot 14 at the PSCH path position 37 being a particular slot number in that code group sequence. The highest value Cn is selected as the basis for the code group number 32g and the slot number 32s. For example, if the entry C17 were the highest valued entry in the table 32t, the stage 2 32 would select the value “1” as the code group number 32g, and the value “2” as the slot number 32s. This would indicate that the CPICH 20 is encoded by way of one of the eight scrambling codes from code group “1”, and that the PSCH path position 37 is synchronized to slot “2” within its respective frame 12. In this manner, frame 12 synchronization is obtained. Finally, the results from stage 2 32 are passed on to stage 3 33, which subsequently performs step 3 to generate a primary scrambling code 33p for the CPICH 20.
The stage 3 33 also includes a correlation unit 33c, which correlates the CPICH 20 with all possible primary scrambling codes contained within the code group 32g. Primary correlation results 33r are respectively obtained in this manner for the primary scrambling codes. The primary scrambling code having the largest primary correlation result is chosen as the primary scrambling code 33p, but only if the corresponding primary correlation result exceeds a threshold value 33x. For example, if each code group contains eight primary scrambling codes S0 to S7, the primary correlation results 33r would be: C0, C1, C2, C3, C4, C5, C6, C7, which are respectively the primary correlation results of the eight primary scrambling codes S0 through S7 in the code group indicated by the code group number 32g. If C6 holds the highest primary correlation value, then the stage 3 33 would place the value of “6” as the primary scrambling code number 33p, assuming that C6 also exceeded the threshold value 33x. 
In the event that the maximum of the primary correlation results 33r fails to pass the threshold 33x, the synchronization stage 38 must obtain a new code group number 32g and slot number 32s, and then the stage 3 33 repeats step 3 again with these new values. This may occur several times, and thus slows down the entire synchronization period.